package me.zhengjie.dao;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import me.zhengjie.vo.MaterialVo;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;
import java.util.List;

/**
 * 出库单
 * @TableName iws_outbound_order
 */
@TableName(value ="iws_outbound_order")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class OutboundOrder implements Serializable {
    /**
     * 出库单主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 出库单号
     */
    @TableField(value = "outbound_order_no")
    private String outboundOrderNo;

    /**
     * 出库单状态
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 出库时间
     */
    @TableField(value = "outbound_time")
    private Date outboundTime;

    /**
     * 完成时间
     */
    @TableField(value = "finish_time")
    private Date finishTime;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 创建人
     */
    @TableField(value = "create_name")
    private String createName;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private Date updateTime;

    /**
     * 更新人
     */
    @TableField(value = "update_name")
    private String updateName;

    /**
     * 预约时间
     */
    @TableField(value = "require_time")
    private Date requireTime;

    /**
     * 目的地
     */
    @TableField(value = "destination")
    private String destination;

    /**
     * 出库物料类型
     */
    @TableField(value = "outbound_type")
    private String outboundType;
    /**
     * 出库物料类型
     */
    @TableField(value = "start_name")
    private String startName;

    /**
     * 发出仓库
     */
    @TableField(value = "outbound_store")
    private String outboundStore;

    /**
     * 出库策略
     */
    @TableField(value = "outbound_policy")
    private Integer outboundPolicy;


    /**
     * 存储MaterialVo对象
     */
    @TableField(exist = false)
    private List<MaterialDetailDao> materialVoList;

    /**
     * 存储调拨单对象
     */
    @TableField(exist = false)
    private List<TransDao> transDaoList;
    /**
     * 存储调拨单对象
     */
    @TableField(exist = false)
    private List<TransferOrderDao> TransferOrderDaoList;

    /**
     * 是否开启流程审批
     */
    @TableField(exist = false)
    private Boolean isApproval;

    /**
     * 最大时间
     */
    @TableField(exist = false)
    private Boolean minTime;
    /**
     * 最小时间
     */
    @TableField(exist = false)
    private Boolean maxTime;

    /**
     * 工作站
     */
    @TableField(exist = false)
    private String workSpace;

    @TableField(exist = false)
    private Integer page;

    @TableField(exist = false)
    private Integer size;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;


}